package com.sx.sx1.lintcode.day717;

public class LC213 {

    static class Solution {
        /**
         * @param originalString: a string
         * @return: a compressed string
         */
        public String compress(String originalString) {
            StringBuilder sb = new StringBuilder();
            int n = originalString.length();
            int idx=0;
            while (idx<n){
                char chr= originalString.charAt(idx);
                int cnt = 0;
                while (idx<n && originalString.charAt(idx) == chr){
                    cnt++;
                    idx++;
                }

                sb.append(chr+""+cnt);
            }
            if(sb.length()>= originalString.length())
                return originalString;

            return sb.toString();
        }
    }


    public static void main(String[] args) {
        System.out.println(new Solution().compress("aabcccccaaa"));
        System.out.println(new Solution().compress("aabbcc"));
    }
}


/*
LintCode-Logo
搜索题目、标签、题集
中文
avatar
您有189条未读消息，请及时查看
213 · 字符串压缩
算法
简单
通过率
43%

题目
题解56
笔记
讨论99
排名
记录
描述
设计一种方法，通过给重复字符计数来进行基本的字符串压缩。

例如，字符串 aabcccccaaa 可压缩为 a2b1c5a3 。而如果压缩后的字符数不小于原始的字符数，则返回原始的字符串。

可以假设字符串仅包括 a-z 的大/小写字母。

最短时间刷“透”算法面试：《66页算法宝典》.pdf

微信添加【jiuzhangfeifei】备注【66】领取


样例
样例 1：

输入：str = "aabcccccaaa"
输出："a2b1c5a3"
样例 2：

输入：str = "aabbcc"
输出："aabbcc"
相关知识
学习《2024年8月北美大厂最新面试真题精讲》课程中的2.11Meta：最新面试精选006相关内容 ，了解更多相关知识！
标签
企业
Snapchat
GoDaddy
Lyft
Expedia
Microsoft
Bloomberg
Yelp
推荐课程

Twitter 后端系统 - Python 项目实战
从0项目经验到深度后端项目操盘，FB架构师万行代码还原真实开发环境，14周简历镀金
207/1857
已开启智能提示
发起考试
15 分 00 秒
123456789

控制台
        历史提交

 */